package cn.wangzg.course0603.bean;

import java.util.List;

/**
 * Time: 2020/4/5
 * Author: wangzhiguo
 * Description: 功能描述
 */
public class Article {

    /**
     * data : {"curPage":2,"datas":[{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":444,"chapterName":"androidx","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12668,"link":"https://www.jianshu.com/p/756863740988","niceDate":"2020-03-30 01:02","niceShareDate":"2020-03-29 10:54","origin":"","prefix":"","projectLink":"","publishTime":1585501326000,"selfVisible":0,"shareDate":1585450454000,"shareUser":"深红骑士","superChapterId":55,"superChapterName":"5.+高新技术","tags":[],"title":"Android App Dark Theme（暗黑模式）适配指南","type":0,"userId":29303,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"xiaoyang","canEdit":false,"chapterId":440,"chapterName":"官方","collect":false,"courseId":13,"desc":"<p>在早期的博客的里面，很多时候，见到有如下的介绍：<\/p>\r\n<ul>\r\n<li>如果你的 View 设置了 match_parent，则在onMeasure 中得到的测量模式为：EXACTLY;<\/li>\r\n<li>如果设置了 wrap_conent，则对应测量模式为：AT_MOST；<\/li>\r\n<li>还剩下一个 UNSPECIFIED大家不用管，不常用。<\/li>\r\n<\/ul>\r\n<p><strong>上述描述每句话都可以认为是错的。<\/strong><\/p>\r\n<p>那么今天的问题是：<\/p>\r\n<ol>\r\n<li>match_parent / wrap_conent一定对应 EXACTLY/ AT_MOST ?<\/li>\r\n<li>测量模式到底是由哪些因素确定的？<\/li>\r\n<li>UNSPECIFIED 真的不常见吗？<\/li>\r\n<\/ol>","descMd":"","envelopePic":"","fresh":false,"id":12489,"link":"https://www.wanandroid.com/wenda/show/12489","niceDate":"2020-03-30 01:01","niceShareDate":"2020-03-20 00:27","origin":"","prefix":"","projectLink":"","publishTime":1585501274000,"selfVisible":0,"shareDate":1584635267000,"shareUser":"","superChapterId":440,"superChapterName":"问答","tags":[{"name":"本站发布","url":"/article/list/0?cid=440"},{"name":"问答","url":"/wenda"}],"title":"每日一问 | 自定义控件测量模式真的和 match_parent，wrap_content 一一对应吗？","type":0,"userId":2,"visible":1,"zan":23},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12671,"link":"https://mp.weixin.qq.com/s/TDl5bmnBRRjRrN_v2LfN3g","niceDate":"2020-03-29 16:12","niceShareDate":"2020-03-29 16:12","origin":"","prefix":"","projectLink":"","publishTime":1585469562000,"selfVisible":0,"shareDate":1585469562000,"shareUser":"飞洋","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"面试官：子线程 真的不能更新UI ？","type":0,"userId":31360,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12669,"link":"https://blog.csdn.net/qq_39424143/article/details/105168643","niceDate":"2020-03-29 11:33","niceShareDate":"2020-03-29 11:30","origin":"","prefix":"","projectLink":"","publishTime":1585452812000,"selfVisible":0,"shareDate":1585452638000,"shareUser":"wjxbless","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"🔥🔥🔥Jetpack组件结合MVVM架构的WanAndroid客户端！","type":0,"userId":29633,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12665,"link":"https://mp.weixin.qq.com/s/gem3JdIV0GHzXSF_jE75Kg","niceDate":"2020-03-28 20:58","niceShareDate":"2020-03-28 20:58","origin":"","prefix":"","projectLink":"","publishTime":1585400288000,"selfVisible":0,"shareDate":1585400288000,"shareUser":"飞洋","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"淘宝首页Bug！嵌套滑动及NestedScroll","type":0,"userId":31360,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12661,"link":"https://juejin.im/post/5e7f12ba518825736d2780a0","niceDate":"2020-03-28 18:26","niceShareDate":"2020-03-28 17:18","origin":"","prefix":"","projectLink":"","publishTime":1585391160000,"selfVisible":0,"shareDate":1585387092000,"shareUser":"DevYK","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"面试官: 说一下你做过哪些性能优化?","type":0,"userId":898,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12662,"link":"https://blog.csdn.net/willway_wang/article/details/105088824","niceDate":"2020-03-28 17:29","niceShareDate":"2020-03-28 17:27","origin":"","prefix":"","projectLink":"","publishTime":1585387779000,"selfVisible":0,"shareDate":1585387641000,"shareUser":"willwaywang6","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android 健壮地处理后台返回的数据","type":0,"userId":833,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":11704,"link":"https://canyie.github.io/2020/02/03/a-new-xposed-style-framework/","niceDate":"2020-03-28 11:48","niceShareDate":"2020-02-03 17:46","origin":"","prefix":"","projectLink":"","publishTime":1585367281000,"selfVisible":0,"shareDate":1580723185000,"shareUser":"残页","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"试着写了一个类Xposed框架","type":0,"userId":12467,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":11940,"link":"https://yrom.net/blog/2016/08/06/one-little-tip-to-handle-safe-media-volume-level-on-android/","niceDate":"2020-03-28 11:47","niceShareDate":"2020-02-13 14:07","origin":"","prefix":"","projectLink":"","publishTime":1585367278000,"selfVisible":0,"shareDate":1581574021000,"shareUser":"残页","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android 上的「安全音量」","type":0,"userId":12467,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":11947,"link":"https://canyie.github.io/2020/02/15/fast-load-dex-on-art-runtime/","niceDate":"2020-03-28 11:47","niceShareDate":"2020-02-15 11:09","origin":"","prefix":"","projectLink":"","publishTime":1585367273000,"selfVisible":0,"shareDate":1581736189000,"shareUser":"残页","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"一种在ART上快速加载dex的方法","type":0,"userId":12467,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12654,"link":"https://juejin.im/post/5e7e3e6af265da7943667c06","niceDate":"2020-03-28 02:12","niceShareDate":"2020-03-28 02:12","origin":"","prefix":"","projectLink":"","publishTime":1585332731000,"selfVisible":0,"shareDate":1585332731000,"shareUser":"xuexiang","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"快速上手系列--Android应用开发模版","type":0,"userId":42190,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":494,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12503,"link":"https://itimetraveler.github.io/2018/07/03/%E3%80%90Android%E3%80%91%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93so%E7%9A%84%E5%8A%A0%E8%BD%BD%E5%8E%9F%E7%90%86/","niceDate":"2020-03-27 22:06","niceShareDate":"2020-03-20 20:52","origin":"","prefix":"","projectLink":"","publishTime":1585318014000,"selfVisible":0,"shareDate":1584708773000,"shareUser":"wangzhengyi","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"【Android】动态链接库so的加载原理","type":0,"userId":38889,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12625,"link":"https://mp.weixin.qq.com/s/F0VJyCpOG_CR0edNdbAqPQ","niceDate":"2020-03-27 00:00","niceShareDate":"2020-03-27 13:15","origin":"","prefix":"","projectLink":"","publishTime":1585238400000,"selfVisible":0,"shareDate":1585286106000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"善于将系统源码为己用，会&ldquo;抄&rdquo;也是技能！","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"code小生","canEdit":false,"chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12638,"link":"https://mp.weixin.qq.com/s/FSk45nECXFKAw1xYp8JmOA","niceDate":"2020-03-27 00:00","niceShareDate":"2020-03-27 13:20","origin":"","prefix":"","projectLink":"","publishTime":1585238400000,"selfVisible":0,"shareDate":1585286440000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/414/1"}],"title":"7 个开源的 Spring Boot 前后端分离项目，一定要收藏！","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12606,"link":"https://blog.csdn.net/willway_wang/article/details/89646698","niceDate":"2020-03-26 20:53","niceShareDate":"2020-03-26 20:53","origin":"","prefix":"","projectLink":"","publishTime":1585227202000,"selfVisible":0,"shareDate":1585227202000,"shareUser":"willwaywang6","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"kotlin 中 object 关键字的使用详解","type":0,"userId":833,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12597,"link":"https://juejin.im/post/5e7ad1c0e51d450edc0cf053","niceDate":"2020-03-26 08:54","niceShareDate":"2020-03-26 08:54","origin":"","prefix":"","projectLink":"","publishTime":1585184066000,"selfVisible":0,"shareDate":1585184066000,"shareUser":"JsonChao","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"深入探索 Android 包体积优化（匠心制作）","type":0,"userId":611,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":69,"chapterName":"okhttp","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12576,"link":"https://juejin.im/post/5e77604fe51d4527066eb81a","niceDate":"2020-03-26 00:13","niceShareDate":"2020-03-25 08:21","origin":"","prefix":"","projectLink":"","publishTime":1585152819000,"selfVisible":0,"shareDate":1585095675000,"shareUser":"AprilEyon","superChapterId":98,"superChapterName":"网络访问","tags":[],"title":"RxHttp ，比Retrofit 更优雅的协程体验","type":0,"userId":3559,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":89,"chapterName":"app缓存相关","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12578,"link":"https://www.jianshu.com/p/5fcef7f68341","niceDate":"2020-03-26 00:12","niceShareDate":"2020-03-25 08:36","origin":"","prefix":"","projectLink":"","publishTime":1585152753000,"selfVisible":0,"shareDate":1585096606000,"shareUser":"轻风白宇","superChapterId":90,"superChapterName":"数据存储","tags":[],"title":"Android 之不要滥用 SharedPreferences（上）","type":0,"userId":29185,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":79,"chapterName":"黑科技","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12586,"link":"https://juejin.im/post/5e7b2d07e51d4565b778647f","niceDate":"2020-03-26 00:11","niceShareDate":"2020-03-25 18:21","origin":"","prefix":"","projectLink":"","publishTime":1585152668000,"selfVisible":0,"shareDate":1585131683000,"shareUser":"鸿洋","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"杀不掉的知乎 - 聊一聊 Android 的多任务","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"xiaoyang","canEdit":false,"chapterId":440,"chapterName":"官方","collect":false,"courseId":13,"desc":"<p>我随便在网上搜了个 ViewPager + Fragment用法，类似的代码很常见：<\/p>\r\n<pre><code>public class MainActivity extends FragmentActivity {\r\n    private ViewPager m_vp;\r\n    private ArrayList&lt;Fragment&gt; fragmentList;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n\r\n        m_vp = (ViewPager)findViewById(R.id.viewpager);\r\n\r\n        mfragment1 = new fragment1();\r\n        mfragment2 = new fragment2();\r\n        mfragment3 = new fragment3();\r\n\r\n        fragmentList = new ArrayList&lt;Fragment&gt;();\r\n        fragmentList.add(mfragment1);\r\n        fragmentList.add(mfragment2);\r\n        fragmentList.add(mfragment3);\r\n\r\n\r\n        m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()));\r\n    }\r\n\r\n    public class MyViewPagerAdapter extends FragmentPagerAdapter{\r\n\r\n        @Override\r\n        public Fragment getItem(int arg0) {\r\n            return fragmentList.get(arg0);\r\n        }\r\n\r\n        @Override\r\n        public int getCount() {\r\n            return fragmentList.size();\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre><p>很多同学都喜欢这么写，然后还经常通过 adapter.getItem(pos)去获取对应的 fragment。<\/p>\r\n<p>这种写法其实是存在很大的问题的。<\/p>\r\n<p>那么今天的问题是:<\/p>\r\n<ol>\r\n<li>这种写法在什么情况下，会造成异常（问题以及对应的场景）？<\/li>\r\n<li>造成该问题的原因是（原理）？<\/li>\r\n<li>更好的写法应该是，（提供根据 position 获取对应 Fragment 方法）。<\/li>\r\n<\/ol>","descMd":"","envelopePic":"","fresh":false,"id":12424,"link":"https://wanandroid.com/wenda/show/12424","niceDate":"2020-03-26 00:10","niceShareDate":"2020-03-15 23:09","origin":"","prefix":"","projectLink":"","publishTime":1585152651000,"selfVisible":0,"shareDate":1584284948000,"shareUser":"","superChapterId":440,"superChapterName":"问答","tags":[{"name":"本站发布","url":"/article/list/0?cid=440"},{"name":"问答","url":"/wenda"}],"title":"每日一问 ViewPager 这个流传广泛的写法，其实是有问题的！","type":0,"userId":2,"visible":1,"zan":20}],"offset":20,"over":false,"pageCount":412,"size":20,"total":8221}
     * errorCode : 0
     * errorMsg :
     */

    private DataBean data;
    private int errorCode;
    private String errorMsg;

    public DataBean getData() {
        return data;
    }

    public void setData(DataBean data) {
        this.data = data;
    }

    public int getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(int errorCode) {
        this.errorCode = errorCode;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }

    public static class DataBean {
        /**
         * curPage : 2
         * datas : [{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":444,"chapterName":"androidx","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12668,"link":"https://www.jianshu.com/p/756863740988","niceDate":"2020-03-30 01:02","niceShareDate":"2020-03-29 10:54","origin":"","prefix":"","projectLink":"","publishTime":1585501326000,"selfVisible":0,"shareDate":1585450454000,"shareUser":"深红骑士","superChapterId":55,"superChapterName":"5.+高新技术","tags":[],"title":"Android App Dark Theme（暗黑模式）适配指南","type":0,"userId":29303,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"xiaoyang","canEdit":false,"chapterId":440,"chapterName":"官方","collect":false,"courseId":13,"desc":"<p>在早期的博客的里面，很多时候，见到有如下的介绍：<\/p>\r\n<ul>\r\n<li>如果你的 View 设置了 match_parent，则在onMeasure 中得到的测量模式为：EXACTLY;<\/li>\r\n<li>如果设置了 wrap_conent，则对应测量模式为：AT_MOST；<\/li>\r\n<li>还剩下一个 UNSPECIFIED大家不用管，不常用。<\/li>\r\n<\/ul>\r\n<p><strong>上述描述每句话都可以认为是错的。<\/strong><\/p>\r\n<p>那么今天的问题是：<\/p>\r\n<ol>\r\n<li>match_parent / wrap_conent一定对应 EXACTLY/ AT_MOST ?<\/li>\r\n<li>测量模式到底是由哪些因素确定的？<\/li>\r\n<li>UNSPECIFIED 真的不常见吗？<\/li>\r\n<\/ol>","descMd":"","envelopePic":"","fresh":false,"id":12489,"link":"https://www.wanandroid.com/wenda/show/12489","niceDate":"2020-03-30 01:01","niceShareDate":"2020-03-20 00:27","origin":"","prefix":"","projectLink":"","publishTime":1585501274000,"selfVisible":0,"shareDate":1584635267000,"shareUser":"","superChapterId":440,"superChapterName":"问答","tags":[{"name":"本站发布","url":"/article/list/0?cid=440"},{"name":"问答","url":"/wenda"}],"title":"每日一问 | 自定义控件测量模式真的和 match_parent，wrap_content 一一对应吗？","type":0,"userId":2,"visible":1,"zan":23},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12671,"link":"https://mp.weixin.qq.com/s/TDl5bmnBRRjRrN_v2LfN3g","niceDate":"2020-03-29 16:12","niceShareDate":"2020-03-29 16:12","origin":"","prefix":"","projectLink":"","publishTime":1585469562000,"selfVisible":0,"shareDate":1585469562000,"shareUser":"飞洋","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"面试官：子线程 真的不能更新UI ？","type":0,"userId":31360,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12669,"link":"https://blog.csdn.net/qq_39424143/article/details/105168643","niceDate":"2020-03-29 11:33","niceShareDate":"2020-03-29 11:30","origin":"","prefix":"","projectLink":"","publishTime":1585452812000,"selfVisible":0,"shareDate":1585452638000,"shareUser":"wjxbless","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"🔥🔥🔥Jetpack组件结合MVVM架构的WanAndroid客户端！","type":0,"userId":29633,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12665,"link":"https://mp.weixin.qq.com/s/gem3JdIV0GHzXSF_jE75Kg","niceDate":"2020-03-28 20:58","niceShareDate":"2020-03-28 20:58","origin":"","prefix":"","projectLink":"","publishTime":1585400288000,"selfVisible":0,"shareDate":1585400288000,"shareUser":"飞洋","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"淘宝首页Bug！嵌套滑动及NestedScroll","type":0,"userId":31360,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12661,"link":"https://juejin.im/post/5e7f12ba518825736d2780a0","niceDate":"2020-03-28 18:26","niceShareDate":"2020-03-28 17:18","origin":"","prefix":"","projectLink":"","publishTime":1585391160000,"selfVisible":0,"shareDate":1585387092000,"shareUser":"DevYK","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"面试官: 说一下你做过哪些性能优化?","type":0,"userId":898,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12662,"link":"https://blog.csdn.net/willway_wang/article/details/105088824","niceDate":"2020-03-28 17:29","niceShareDate":"2020-03-28 17:27","origin":"","prefix":"","projectLink":"","publishTime":1585387779000,"selfVisible":0,"shareDate":1585387641000,"shareUser":"willwaywang6","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android 健壮地处理后台返回的数据","type":0,"userId":833,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":11704,"link":"https://canyie.github.io/2020/02/03/a-new-xposed-style-framework/","niceDate":"2020-03-28 11:48","niceShareDate":"2020-02-03 17:46","origin":"","prefix":"","projectLink":"","publishTime":1585367281000,"selfVisible":0,"shareDate":1580723185000,"shareUser":"残页","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"试着写了一个类Xposed框架","type":0,"userId":12467,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":11940,"link":"https://yrom.net/blog/2016/08/06/one-little-tip-to-handle-safe-media-volume-level-on-android/","niceDate":"2020-03-28 11:47","niceShareDate":"2020-02-13 14:07","origin":"","prefix":"","projectLink":"","publishTime":1585367278000,"selfVisible":0,"shareDate":1581574021000,"shareUser":"残页","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"Android 上的「安全音量」","type":0,"userId":12467,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":11947,"link":"https://canyie.github.io/2020/02/15/fast-load-dex-on-art-runtime/","niceDate":"2020-03-28 11:47","niceShareDate":"2020-02-15 11:09","origin":"","prefix":"","projectLink":"","publishTime":1585367273000,"selfVisible":0,"shareDate":1581736189000,"shareUser":"残页","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"一种在ART上快速加载dex的方法","type":0,"userId":12467,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12654,"link":"https://juejin.im/post/5e7e3e6af265da7943667c06","niceDate":"2020-03-28 02:12","niceShareDate":"2020-03-28 02:12","origin":"","prefix":"","projectLink":"","publishTime":1585332731000,"selfVisible":0,"shareDate":1585332731000,"shareUser":"xuexiang","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"快速上手系列--Android应用开发模版","type":0,"userId":42190,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":494,"chapterName":"广场","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12503,"link":"https://itimetraveler.github.io/2018/07/03/%E3%80%90Android%E3%80%91%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93so%E7%9A%84%E5%8A%A0%E8%BD%BD%E5%8E%9F%E7%90%86/","niceDate":"2020-03-27 22:06","niceShareDate":"2020-03-20 20:52","origin":"","prefix":"","projectLink":"","publishTime":1585318014000,"selfVisible":0,"shareDate":1584708773000,"shareUser":"wangzhengyi","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"【Android】动态链接库so的加载原理","type":0,"userId":38889,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"鸿洋","canEdit":false,"chapterId":408,"chapterName":"鸿洋","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12625,"link":"https://mp.weixin.qq.com/s/F0VJyCpOG_CR0edNdbAqPQ","niceDate":"2020-03-27 00:00","niceShareDate":"2020-03-27 13:15","origin":"","prefix":"","projectLink":"","publishTime":1585238400000,"selfVisible":0,"shareDate":1585286106000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/408/1"}],"title":"善于将系统源码为己用，会&ldquo;抄&rdquo;也是技能！","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"code小生","canEdit":false,"chapterId":414,"chapterName":"code小生","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12638,"link":"https://mp.weixin.qq.com/s/FSk45nECXFKAw1xYp8JmOA","niceDate":"2020-03-27 00:00","niceShareDate":"2020-03-27 13:20","origin":"","prefix":"","projectLink":"","publishTime":1585238400000,"selfVisible":0,"shareDate":1585286440000,"shareUser":"","superChapterId":408,"superChapterName":"公众号","tags":[{"name":"公众号","url":"/wxarticle/list/414/1"}],"title":"7 个开源的 Spring Boot 前后端分离项目，一定要收藏！","type":0,"userId":-1,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12606,"link":"https://blog.csdn.net/willway_wang/article/details/89646698","niceDate":"2020-03-26 20:53","niceShareDate":"2020-03-26 20:53","origin":"","prefix":"","projectLink":"","publishTime":1585227202000,"selfVisible":0,"shareDate":1585227202000,"shareUser":"willwaywang6","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"kotlin 中 object 关键字的使用详解","type":0,"userId":833,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":502,"chapterName":"自助","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12597,"link":"https://juejin.im/post/5e7ad1c0e51d450edc0cf053","niceDate":"2020-03-26 08:54","niceShareDate":"2020-03-26 08:54","origin":"","prefix":"","projectLink":"","publishTime":1585184066000,"selfVisible":0,"shareDate":1585184066000,"shareUser":"JsonChao","superChapterId":494,"superChapterName":"广场Tab","tags":[],"title":"深入探索 Android 包体积优化（匠心制作）","type":0,"userId":611,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":69,"chapterName":"okhttp","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12576,"link":"https://juejin.im/post/5e77604fe51d4527066eb81a","niceDate":"2020-03-26 00:13","niceShareDate":"2020-03-25 08:21","origin":"","prefix":"","projectLink":"","publishTime":1585152819000,"selfVisible":0,"shareDate":1585095675000,"shareUser":"AprilEyon","superChapterId":98,"superChapterName":"网络访问","tags":[],"title":"RxHttp ，比Retrofit 更优雅的协程体验","type":0,"userId":3559,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":89,"chapterName":"app缓存相关","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12578,"link":"https://www.jianshu.com/p/5fcef7f68341","niceDate":"2020-03-26 00:12","niceShareDate":"2020-03-25 08:36","origin":"","prefix":"","projectLink":"","publishTime":1585152753000,"selfVisible":0,"shareDate":1585096606000,"shareUser":"轻风白宇","superChapterId":90,"superChapterName":"数据存储","tags":[],"title":"Android 之不要滥用 SharedPreferences（上）","type":0,"userId":29185,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"","canEdit":false,"chapterId":79,"chapterName":"黑科技","collect":false,"courseId":13,"desc":"","descMd":"","envelopePic":"","fresh":false,"id":12586,"link":"https://juejin.im/post/5e7b2d07e51d4565b778647f","niceDate":"2020-03-26 00:11","niceShareDate":"2020-03-25 18:21","origin":"","prefix":"","projectLink":"","publishTime":1585152668000,"selfVisible":0,"shareDate":1585131683000,"shareUser":"鸿洋","superChapterId":196,"superChapterName":"热门专题","tags":[],"title":"杀不掉的知乎 - 聊一聊 Android 的多任务","type":0,"userId":2,"visible":1,"zan":0},{"apkLink":"","audit":1,"author":"xiaoyang","canEdit":false,"chapterId":440,"chapterName":"官方","collect":false,"courseId":13,"desc":"<p>我随便在网上搜了个 ViewPager + Fragment用法，类似的代码很常见：<\/p>\r\n<pre><code>public class MainActivity extends FragmentActivity {\r\n    private ViewPager m_vp;\r\n    private ArrayList&lt;Fragment&gt; fragmentList;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n\r\n        m_vp = (ViewPager)findViewById(R.id.viewpager);\r\n\r\n        mfragment1 = new fragment1();\r\n        mfragment2 = new fragment2();\r\n        mfragment3 = new fragment3();\r\n\r\n        fragmentList = new ArrayList&lt;Fragment&gt;();\r\n        fragmentList.add(mfragment1);\r\n        fragmentList.add(mfragment2);\r\n        fragmentList.add(mfragment3);\r\n\r\n\r\n        m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()));\r\n    }\r\n\r\n    public class MyViewPagerAdapter extends FragmentPagerAdapter{\r\n\r\n        @Override\r\n        public Fragment getItem(int arg0) {\r\n            return fragmentList.get(arg0);\r\n        }\r\n\r\n        @Override\r\n        public int getCount() {\r\n            return fragmentList.size();\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre><p>很多同学都喜欢这么写，然后还经常通过 adapter.getItem(pos)去获取对应的 fragment。<\/p>\r\n<p>这种写法其实是存在很大的问题的。<\/p>\r\n<p>那么今天的问题是:<\/p>\r\n<ol>\r\n<li>这种写法在什么情况下，会造成异常（问题以及对应的场景）？<\/li>\r\n<li>造成该问题的原因是（原理）？<\/li>\r\n<li>更好的写法应该是，（提供根据 position 获取对应 Fragment 方法）。<\/li>\r\n<\/ol>","descMd":"","envelopePic":"","fresh":false,"id":12424,"link":"https://wanandroid.com/wenda/show/12424","niceDate":"2020-03-26 00:10","niceShareDate":"2020-03-15 23:09","origin":"","prefix":"","projectLink":"","publishTime":1585152651000,"selfVisible":0,"shareDate":1584284948000,"shareUser":"","superChapterId":440,"superChapterName":"问答","tags":[{"name":"本站发布","url":"/article/list/0?cid=440"},{"name":"问答","url":"/wenda"}],"title":"每日一问 ViewPager 这个流传广泛的写法，其实是有问题的！","type":0,"userId":2,"visible":1,"zan":20}]
         * offset : 20
         * over : false
         * pageCount : 412
         * size : 20
         * total : 8221
         */

        private int curPage;
        private int offset;
        private boolean over;
        private int pageCount;
        private int size;
        private int total;
        private List<DatasBean> datas;

        public int getCurPage() {
            return curPage;
        }

        public void setCurPage(int curPage) {
            this.curPage = curPage;
        }

        public int getOffset() {
            return offset;
        }

        public void setOffset(int offset) {
            this.offset = offset;
        }

        public boolean isOver() {
            return over;
        }

        public void setOver(boolean over) {
            this.over = over;
        }

        public int getPageCount() {
            return pageCount;
        }

        public void setPageCount(int pageCount) {
            this.pageCount = pageCount;
        }

        public int getSize() {
            return size;
        }

        public void setSize(int size) {
            this.size = size;
        }

        public int getTotal() {
            return total;
        }

        public void setTotal(int total) {
            this.total = total;
        }

        public List<DatasBean> getDatas() {
            return datas;
        }

        public void setDatas(List<DatasBean> datas) {
            this.datas = datas;
        }

        public static class DatasBean {
            /**
             * apkLink :
             * audit : 1
             * author :
             * canEdit : false
             * chapterId : 444
             * chapterName : androidx
             * collect : false
             * courseId : 13
             * desc :
             * descMd :
             * envelopePic :
             * fresh : false
             * id : 12668
             * link : https://www.jianshu.com/p/756863740988
             * niceDate : 2020-03-30 01:02
             * niceShareDate : 2020-03-29 10:54
             * origin :
             * prefix :
             * projectLink :
             * publishTime : 1585501326000
             * selfVisible : 0
             * shareDate : 1585450454000
             * shareUser : 深红骑士
             * superChapterId : 55
             * superChapterName : 5.+高新技术
             * tags : []
             * title : Android App Dark Theme（暗黑模式）适配指南
             * type : 0
             * userId : 29303
             * visible : 1
             * zan : 0
             */

            private String apkLink;
            private int audit;
            private String author;
            private boolean canEdit;
            private int chapterId;
            private String chapterName;
            private boolean collect;
            private int courseId;
            private String desc;
            private String descMd;
            private String envelopePic;
            private boolean fresh;
            private int id;
            private String link;
            private String niceDate;
            private String niceShareDate;
            private String origin;
            private String prefix;
            private String projectLink;
            private long publishTime;
            private int selfVisible;
            private long shareDate;
            private String shareUser;
            private int superChapterId;
            private String superChapterName;
            private String title;
            private int type;
            private int userId;
            private int visible;
            private int zan;
            private List<?> tags;

            public String getApkLink() {
                return apkLink;
            }

            public void setApkLink(String apkLink) {
                this.apkLink = apkLink;
            }

            public int getAudit() {
                return audit;
            }

            public void setAudit(int audit) {
                this.audit = audit;
            }

            public String getAuthor() {
                return author;
            }

            public void setAuthor(String author) {
                this.author = author;
            }

            public boolean isCanEdit() {
                return canEdit;
            }

            public void setCanEdit(boolean canEdit) {
                this.canEdit = canEdit;
            }

            public int getChapterId() {
                return chapterId;
            }

            public void setChapterId(int chapterId) {
                this.chapterId = chapterId;
            }

            public String getChapterName() {
                return chapterName;
            }

            public void setChapterName(String chapterName) {
                this.chapterName = chapterName;
            }

            public boolean isCollect() {
                return collect;
            }

            public void setCollect(boolean collect) {
                this.collect = collect;
            }

            public int getCourseId() {
                return courseId;
            }

            public void setCourseId(int courseId) {
                this.courseId = courseId;
            }

            public String getDesc() {
                return desc;
            }

            public void setDesc(String desc) {
                this.desc = desc;
            }

            public String getDescMd() {
                return descMd;
            }

            public void setDescMd(String descMd) {
                this.descMd = descMd;
            }

            public String getEnvelopePic() {
                return envelopePic;
            }

            public void setEnvelopePic(String envelopePic) {
                this.envelopePic = envelopePic;
            }

            public boolean isFresh() {
                return fresh;
            }

            public void setFresh(boolean fresh) {
                this.fresh = fresh;
            }

            public int getId() {
                return id;
            }

            public void setId(int id) {
                this.id = id;
            }

            public String getLink() {
                return link;
            }

            public void setLink(String link) {
                this.link = link;
            }

            public String getNiceDate() {
                return niceDate;
            }

            public void setNiceDate(String niceDate) {
                this.niceDate = niceDate;
            }

            public String getNiceShareDate() {
                return niceShareDate;
            }

            public void setNiceShareDate(String niceShareDate) {
                this.niceShareDate = niceShareDate;
            }

            public String getOrigin() {
                return origin;
            }

            public void setOrigin(String origin) {
                this.origin = origin;
            }

            public String getPrefix() {
                return prefix;
            }

            public void setPrefix(String prefix) {
                this.prefix = prefix;
            }

            public String getProjectLink() {
                return projectLink;
            }

            public void setProjectLink(String projectLink) {
                this.projectLink = projectLink;
            }

            public long getPublishTime() {
                return publishTime;
            }

            public void setPublishTime(long publishTime) {
                this.publishTime = publishTime;
            }

            public int getSelfVisible() {
                return selfVisible;
            }

            public void setSelfVisible(int selfVisible) {
                this.selfVisible = selfVisible;
            }

            public long getShareDate() {
                return shareDate;
            }

            public void setShareDate(long shareDate) {
                this.shareDate = shareDate;
            }

            public String getShareUser() {
                return shareUser;
            }

            public void setShareUser(String shareUser) {
                this.shareUser = shareUser;
            }

            public int getSuperChapterId() {
                return superChapterId;
            }

            public void setSuperChapterId(int superChapterId) {
                this.superChapterId = superChapterId;
            }

            public String getSuperChapterName() {
                return superChapterName;
            }

            public void setSuperChapterName(String superChapterName) {
                this.superChapterName = superChapterName;
            }

            public String getTitle() {
                return title;
            }

            public void setTitle(String title) {
                this.title = title;
            }

            public int getType() {
                return type;
            }

            public void setType(int type) {
                this.type = type;
            }

            public int getUserId() {
                return userId;
            }

            public void setUserId(int userId) {
                this.userId = userId;
            }

            public int getVisible() {
                return visible;
            }

            public void setVisible(int visible) {
                this.visible = visible;
            }

            public int getZan() {
                return zan;
            }

            public void setZan(int zan) {
                this.zan = zan;
            }

            public List<?> getTags() {
                return tags;
            }

            public void setTags(List<?> tags) {
                this.tags = tags;
            }
        }
    }
}
